/*
 * @Author: OBKoro1
 * @Date: 2025-09-11 09:21:14
 * @LastEditTime: 2025-09-19 09:03:46
 * @FilePath: \RoPet_ESPS3_AI_EYE-main\main\audio_processing\no_wake_word.cc
 * @Description: 
 * 
 * Copyright (c) 2025 by ${git_name_email}, All Rights Reserved. 
 */
#include "no_wake_word.h"
#include <esp_log.h>

#define TAG "NoWakeWord"


/**
 * @brief 初始化无唤醒词处理器
 * @param codec 音频编解码器指针，用于获取音频相关配置（此处未实际使用）
 * @note 空实现，因为无需进行唤醒词处理
 */
void NoWakeWord::Initialize(AudioCodec* codec) {
    codec_ = codec;
}


/**
 * @brief 输入音频数据进行处理
 * @param data 音频数据
 * @note 空实现，因为无需进行唤醒词处理
 */
void NoWakeWord::Feed(const std::vector<int16_t>& data) {
    // Do nothing - no wake word processing
}


/**
 * @brief 唤醒词检测回调函数
 * @param callback 唤醒词检测回调函数
 * @note 空实现，因为无需进行唤醒词处理
 */
void NoWakeWord::OnWakeWordDetected(std::function<void(const std::string& wake_word)> callback) {
    // Do nothing - no wake word processing
}


//
void NoWakeWord::StartDetection() {
    // Do nothing - no wake word processing
}

void NoWakeWord::StopDetection() {
    // Do nothing - no wake word processing
}

bool NoWakeWord::IsDetectionRunning() {
    return false;  // No wake word processing
}

size_t NoWakeWord::GetFeedSize() {
    return 0;  // No specific feed size requirement
}

void NoWakeWord::EncodeWakeWordData() {
    // Do nothing - no encoding needed
}

bool NoWakeWord::GetWakeWordOpus(std::vector<uint8_t>& opus) {
    opus.clear();
    return false;  // No opus data available
}

const std::string& NoWakeWord::GetLastDetectedWakeWord() const {
    return last_detected_wake_word_;
}